import request from "@/utils/request";
// import * as searchType from "./type";

const apiPath = {
  search: "/artist/detail",
  artists: "/artists",
  artistMv: "/artist/mv",
  artistAlbum: "/artist/album", //获取歌手专辑
  artistDesc: "/artist/desc", //获取歌手描述
  songs: "/artists", //获取歌手热门的歌曲
  followCount: "/artist/follow/count", //歌手粉丝数量
  allSongs: "/artist/songs", //获取歌手全部歌曲
};

/**
 * @说明 : 调用此接口 , 传入歌手 id, 可获得歌手部分信息和热门歌曲
 * @必选参数id : 歌手 id, 可由搜索接口获得
 * @param id
 */
export function getArtist(id: number) {
  return request({
    method: "get",
    url: apiPath.search,
    params: { id },
  });
}

/**
 * 说明 : 调用此接口 , 传入歌手 id, 可获得歌手描述
 * @param id 必选参数:歌手 id
 * @returns 
 */
export function getArtistDesc(params: { id: number }) {
  return request({
    method: "get",
    url: apiPath.artistDesc,
    params
  });
}

/**
 * @说明 : 调用此接口 , 传入歌手 id, 可获得歌手 mv 信息 , 具体 mv 播放地址可调 用/mv传入此接口获得的 mvid 来拿到 , 如 : /artist/mv?id=6452,/mv?mvid=5461064
 * @必选参数id : 歌手 id, 可由搜索接口获得
 * @returns
 */
export function getArtistMv(id: number) {
  return request({
    method: "get",
    url: apiPath.artistMv,
    params: { id },
  });
}

/**
 * @说明 : 调用此接口 , 传入歌手 id, 可获得歌手专辑内容
 * @必选参数 : id: 歌手 id
 * @可选参数 : limit: 取出数量 , 默认为 30 offset: 偏移数量 , 用于分页 , 如 :( 页数 -1)*30, 其中 30 为 limit 的值 , 默认 为 0
 * @returns
 */
export function getArtistAlbum(option: {
  id: number;
  limit?: number;
  offset?: number;
}) {
  return request({
    method: "get",
    url: apiPath.artistAlbum,
    params: option,
  });
}

/**
 *
 * @param option {}
 * @id : 歌手 id
 * @可选参数
 * @order : hot ,time 按照热门或者时间排序
 * @limit : 取出歌单数量 , 默认为 50
 * @offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值
 * @returns
 */
export function getSingerSongs(params: {
  id: number;
  order?: string;
  limit?: number;
  offset?: number;
}) {
  return request({
    method: "get",
    url: apiPath.songs,
    params,
  });
}

/**
 * @说明 : 调用此接口 , 传入歌手 id, 可获取歌手粉丝数量
 * @必选参数 : id : 歌手 id
 * @可选参数 : limit: 取出粉丝数量 , 默认为 20
 * @offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*10, 其中 10 为 limit 的值
 */
export function getFollowCount(params: {
  id: number;
  limit?: number;
  offset?: number;
}) {
  return request({
    method: "get",
    url: apiPath.followCount,
    params,
  });
}

/**
 * 歌手全部歌曲
 * @说明 : 调用此接口 , 传入歌手 id, 可获取歌手全部歌曲
 * @param params {}
 * @必选参数
 * @id : 歌手 id
 * @可选参数
 * @limit : 取出歌曲数量 , 默认为 50
 * @offset : 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值
 * @returns
 */
export function getAllSongs(params: {
  id: number;
  limit?: number;
  offset?: number;
}) {
  return request({
    method: "get",
    url: apiPath.allSongs,
    params,
  });
}
